home *** CD-ROM | disk | FTP | other *** search
/ Linux Cubed Series 7: Sunsite / Linux Cubed Series 7 - Sunsite Vol 1.iso / system / shells / scsh-0.4 / scsh-0 / scsh-0.4.2 / cig / image2script < prev    next >
Text File  |  1995-10-13  |  1KB  |  49 lines

  1. #!/bin/sh -
  2.  
  3. binary=$1
  4. shift
  5.  
  6. if [ `echo $binary | wc -c` -gt 28 ] ; then
  7.     echo "#!/bin/sh -"
  8.     echo exec $binary $* -i '"$0"' '"$@"'
  9.  
  10. elif [ $# -gt 0 ] ; then
  11.     echo '#!'$binary \\
  12.     echo $* -i
  13.  
  14. else echo '#!'$binary -i
  15. fi
  16.  
  17. exec cat
  18.  
  19.  
  20. # This program reads an S48 image from stdin and turns it into
  21. # an executable by prepending a #! prefix. The vm and its
  22. # args are passed to this program on the command line.
  23. #
  24. # If the vm binary is 27 chars or less, then we can directly
  25. # execute the vm with one of these scripts:
  26. #     No args:
  27. #         image2script /usr/local/bin/svm <image
  28. #     outputs this script:
  29. #      #!/usr/local/bin/svm -i
  30. #      ...image bits follow...
  31. #    
  32. #     Args:
  33. #         image2script /usr/bin/svm -h 4000000 -o /usr/bin/svm <image
  34. #     outputs this script:
  35. #      #!/usr/bin/svm \
  36. #      -h 4000000 -o /usr/bin/svm -i
  37. #      ...image bits follow...
  38. #
  39. # The exec system call won't handle the #! line if it contains more than
  40. # 32 chars, so if the vm binary is over 28 chars, we have to use a /bin/sh
  41. # trampoline.
  42. #     image2script /user1/lecturer/shivers/vc/scsh/s48/lib/svm -h 4000000 < ...
  43. # outputs this script:
  44. #     #!/bin/sh -
  45. #     exec /user1/lecturer/shivers/vc/scsh/s48/lib/svm -h 4000000 -i $0 $*
  46. #     ...image bits follow...
  47. #
  48. #     -Olin
  49.